草庐IT

c++ - WinAPI : Add style to combo box

全部标签

c++ - 在 C/C++ 中将月/日/年/时间转换为时间值

在C/C++中,假设我有以下值:intyear=2010;intmonth=6;intday=15;inthour=14;intminute=52;intseconds=34;intmicroseconds=141231;将其转换为时间间隔的最简单方法是什么?我认为timeval是从1970年1月1日开始的时间?但是每次都手动计算这个似乎很乏味。最简单(也是最快)的方法是什么?谢谢 最佳答案 您可以使用mktime(3)将structtm结构转换为time_t。在你有了time_t之后,你可以将它和你的微秒值直接复制到structt

c++ - 128 位数字的位移位运算

假设我有一个由4个32位整数组成的数组,我用它来存储128位数字如何对这个128位数字进行左右移位?谢谢! 最佳答案 使用uint128?如果可以,请使用专为此设计的x86SSE指令。(然后,当您对值进行位移后,就可以进行其他128位操作了……)SSE2移位平均需要4条指令,一个分支(一个case语句)。移动超过32位也没有问题。执行此操作的完整代码是使用gcc内在函数而不是原始汇编程序,位于sseutil.c(github:"UnusualusesofSSE2")中——它比粘贴在这里有意义的大一些。许多人在使用SSE2时遇到的障碍

c++ - 为什么 std::FILE 是大写字母?

我想知道为什么C和C++的FILE类型拼写为大写字母。其他类型用小写字母拼写。编辑参见C++11的§27.9.2,表134 最佳答案 在非常古老的C方言中,在有任何标准化之前,当FILE类型被发明时,并且在typedef存在之前,该名称是一个宏:#defineFILEstruct_iobuf惯例是让宏以全部大写命名。http://minnie.tuhs.org/cgi-bin/utree.pl?file=V7/usr/include/stdio.h(小写的宏只是函数的优化版本——其中许多也作为适当的函数存在)

c++ - 在 Xcode 4 中包含 C/C++ header

我一直在使用C++库在使用Xcode3构建的项目上没有问题,但我现在在使用Xcode4构建的项目上遇到构建问题。将库放入Xcode4项目中,它构建良好,但是当我#include时,我收到“词法或预处理器问题”错误,更具体地说是“'字符串'文件未找到,在其主头文件的第4行。仔细检查后,错误指出在~/myproject'sdirectory/include/mainheader.h中找不到'string'文件我已经尝试了列出的解决方案here,但都没有用。所以它认为头文件在我的项目目录中,但它显然是一个C/C++头文件……我如何告诉Xcode查找这些C/C++头文件?

c++ - 是否存在 fseek/ftell 给出错误文件大小的情况?

在C或C++中,以下可用于返回文件大小:constunsignedlonglongat_beg=(unsignedlonglong)ftell(filePtr);fseek(filePtr,0,SEEK_END);constunsignedlonglongat_end=(unsignedlonglong)ftell(filePtr);constunsignedlonglonglength_in_bytes=at_end-at_beg;fprintf(stdout,"filesize:%llu\n",length_in_bytes);是否有开发环境、编译器或操作系统可以根据填充或其他特定

c++ - 如何通过反汇编从 C++ 函数中获取 "lea"指令?

我正在尝试学习逆向工程,但我被这件小事困住了。我有这样的代码:.text:10003478moveax,HWHandle.text:1000347Dleaecx,[eax+1829B8h]我想知道,它在C或C++中看起来如何?尤其是箭头所指的两条指令。HWHandle是一个变量,它保存从GetModuleHandle()函数返回的值。更有趣的是,在这条指令下面的几行中,dword_1000FCA0被用作一个函数:.text:1000353Cmoveax,dword_1000FCA0.text:10003541movecx,[eax+0A0h].text:10003547pushoffs

c++ - 在 MFC 中添加加速器(快捷方式) - 如何?

我找到了这个链接:http://support.microsoft.com/kb/222829但是我听不懂那么多。好的,我知道我需要将它添加到我的头文件中:HACCELm_hAccelTable;然后是:m_hAccelTable=LoadAccelerators(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_ACCELERATOR1));到我的main.cpp但这会去哪里呢?BOOLCAboutDlg::PreTranslateMessage(MSG*pMsg){if(m_hAccelTable){if(::TranslateAccelerat

c++ - 打印 float ,使指数标记为 "*10^"而不是 "e"

我正在寻找在C/C++中打印float(或double)f的可能性,比如f=1.234e-15,这样它就被打印为f=1.234*10^-15,或者更好,如f=1.234*10^{-15}谁能帮帮我?也许有一种方法可以得到以10为底的指数“-15”和尾数“1.234”。我发现了问题howcanIextractthemantissaofadouble,但不幸的是,这并没有真正帮助,因为它只得到基数2的尾数。 最佳答案 您可以使用输出字符串流打印到string,然后将"e"替换为"*10^"。ostringstreamss;ss这个片段p

c++ - 如何对无符号长数使用宏?

这是我的代码:#defineMSK0x0F#defineUNT1#defineN3000000000unsignedcharaln[1+N];unsignedcharpileup[1+N];voidset(unsignedlongi){if((aln[i]&MSK)!=MSK){aln[i]+=UNT;}}intmain(void){}当我尝试编译它时,编译器会这样提示:tmp/ccJ4IgSa.o:Infunction`set':bitmacs.c:(.text+0xf):relocationtruncatedtofit:R_X86_64_32Sagainstsymbol`aln'd

c++ - C 和 C++ 中反斜杠后的空白字符

C和C++标准对反斜杠后的空白字符(或几个字符)有何规定?它是否保证无论如何都会加入行?intmain(){//Comment\intfoo;}在这种情况下,MSVC和gcc的工作方式不同。 最佳答案 作为引用,标准引述是(§2.2/1,删节,强调我的):PhasesofTranslation[...]2.Eachinstanceofabackslashcharacter(\)immediatelyfollowedbyanew-linecharacterisdeleted,splicingphysicalsourcelinestof